/**
 * 海报生成控制器
 * @module controllers/posterController
 */

// 修改导入方式
const { generateNewsPoster } = require('../services/generateNewsPoster');
const logger = require('../utils/logger');

/**
 * 生成新闻海报
 * @async
 * @function generatePoster
 * @param {Object} req - Express 请求对象
 * @param {Object} res - Express 响应对象
 * @returns {Promise<void>}
 */
const getNewsPoster = async (req, res) => {
  logger.logRequest(req);
  try {
    // 增加请求参数日志
    logger.debug('请求参数:', req.body);
    
    // 确保请求体包含 news 字段
    if (!req.body.news) {
      throw new Error('请求参数缺少 news 字段');
    }

    // 转换参数格式
    const params = {
      newsItems: req.body.news
    };

    logger.debug('转换后的参数:', params);
    
    const result = await generateNewsPoster(params);
    logger.debug('生成结果:', result);
    
    res.status(200).json(result);
  } catch (error) {
    logger.error('生成海报失败:', error);
    res.status(500).json({ 
      error: error.message,
      stack: process.env.NODE_ENV === 'development' ? error.stack : undefined
    });
  }
}

// 导出
module.exports = {
  getNewsPoster
}; 